package com.Advance.interface_;
//通过生活中的案例对接口进行一个入门
//演示一下接口中的多态数组：给USB_interface数组中存放Phone和Camera对象，Phone类还有一个特有的方法call()，
//便利USB_interface数组，如果是Phone对象，除了调用USB_interface接口定义的方法外，还需要调用Phone中特有的方法call
public class interface_01 {
    public static void main(String[] args) {
//        //创建手机，相机对象
        Phone phone = new Phone();
        Camera camera = new Camera();
//        //创建计算机
        Computer computer = new Computer();
//        computer.work(phone);//把手机接入计算机
//        System.out.println("===============");
//        computer.work(camera);//把相机接入到计算机
        USB_interface[] usb = new USB_interface[2];
        usb[0] = phone;
        usb[1] = camera;
        for (int i = 0; i < usb.length; i++) {
            usb[i].work();
            if (usb[i] instanceof Phone) {
                Phone p = (Phone) usb[i];
                p.call();
            }
        }
        //接口类型的变量可以指向实现了该接口的类的对象实例
        BBB bbb = new Test();
        //现在是Test实现了BBB接口，而BBB又继承了AAA，实际上Test类也实现了AAA接口
        //这就是所谓的多态传递现象

    }
}
//接口的多态的传递
interface AAA {
    void ok();
}
interface BBB extends AAA {

}
class Test implements BBB {
    @Override
    public void ok() {

    }
}



